#ifndef CSHOTPOWERUPBEHAVIOUR_H
#define CSHOTPOWERUPBEHAVIOUR_H

#include "../include/CDefaultPowerUpBehaviour.h"

class CPlayerBehaviour;

//**************************
//Manage the behaviour of a Power Up that give one more shot to the player
//**************************
class CShotPowerUpBehaviour : public CDefaultPowerUpBehaviour
{
    private:
        int m_iTypeShotBonus;       //type of the shot that will be granted a bonus (primary or secondary shot)

    public:
        //**************************
        //Description : Constructor
        //Parameters : Value for m_iX, m_iY,
        //              m_iSpeedX, m_iSpeedY,
        //              m_iWidth, m_Height,
        //              the ratio for the collision box
        //              m_iNbPoints
        //Note : None
        //**************************
        CShotPowerUpBehaviour(int _iX = 0, int _iY = 0,
                                int _iSpeedX = 1, int _iSpeedY = 1,
                                int _iWidth = 0, int _iHeight = 0,
                                float _fRatioW = 1.0f, float _fRatioH = 1.0f,
                                int _iNbPoints = 50,
                                int _iTypeShotBonus = DEFAULTSHOT);

        //**************************
        //Description : Copy Constructor
        //Parameters : A CDefaultPowerUpBehaviour
        //Note : None
        //**************************
        CShotPowerUpBehaviour(CShotPowerUpBehaviour & _ShotPowerUp);

        //**************************
        //Description : Destructor
        //Parameters : None
        //Note : None
        //**************************
        virtual ~CShotPowerUpBehaviour();

        //**************************
        //Description : Set m_iTypeShotBonus
        //Parameters : The new value for m_iTypeShotBonus
        //Return Value : None
        //Note : None
        //**************************
        void SetTypeShotBonus(int _iTypeShotBonus);

        //**************************
        //Description : Give a bonus (add life, new shot, etc...) to the entity
        //Parameters : The entity which gain the bonus
        //Return Value : None
        //Note : None
        //**************************
        virtual void GiveBonus(CPlayerBehaviour * _Player);

        //**************************
        //Description : Update the trajectory of the entity
        //Parameters : None
        //Return Value : None
        //Note : None
        //**************************
        virtual void EntityTrajectory();
};

#endif // CSHOTPOWERUPBEHAVIOUR_H
